package com.lancoo.ccas53.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.lancoo.ccas53.valid.ListValue;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * <p>
 * 基础规则
 * </p>
 *
 * @author quin.song
 * @since 2024-05-20
 */
@Data
@Accessors(chain = true)
@TableName("rule_usable")
@ApiModel(value = "RuleUsable对象", description = "基础规则")
public class RuleUsable implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @NotNull
    @ApiModelProperty("任务id")
    private Integer taskId;

    @ListValue(values = {1, 2, 3, 4, 5, 6, 7}, message = "参数校验失败 1、跨校区上课 2、教师分布 3、课程分布 4、环节排课 5、教师单日最大上课节次 6、教务处排课范围,7、学生课程单日最大上课节次")
    @ApiModelProperty("1、跨校区上课 2、教师分布 3、课程分布 4、环节排课 5、教师单日最大上课节次 6、教务处排课范围, 7、学生课程单日最大上课节次")
    private Integer code;

    @ApiModelProperty("0、系统默认无要求 1、 2、 3、")
    private Integer optionType = 0;

    public String typeToStrong() {
        if (this.optionType == null) {
            return "0000";
        }
        return String.format("%04d", this.optionType);
    }
}
